Commit Graph

61 Commits

Author SHA1 Message Date
James Wilson 057c847474 Fix unstable-light-client + ChainHeadBackend tx events (#1865)
* Fix unstable-light-client + ChainHeadBackend tx events

* Add note that Broadcasted event should no longer be returned at all

* fmt
2024-11-13 15:26:11 +01:00
Niklas Adolfsson 9b5523e4b0 chore(deps): bump scale family crates, primitive-types and impl-serde (#1832)
* chore(deps): bump scale-encode and scale-decode

* Update Cargo.toml

* Update Cargo.toml

* Update Cargo.toml

* update Cargo.lock

* bump scale-typegen

* use primitive_types::H256

* cargo fmt

* remove old darling hack
2024-10-22 19:23:38 +02:00
Niklas Adolfsson 418bd88e62 chore(deps): replace instant with web-time (#1830)
* chore(deps): replace `instant` with `web-time`

Close https://github.com/paritytech/subxt/issues/1597

* fix build

* fix build v2

* cargo fmt
2024-10-22 15:54:54 +02:00
Niklas Adolfsson 0e86993cd7 deps: use polkadot-sdk umbrella crate (#1786)
* deps: unify usage of polkadot-sdk crates

* cargo fmt

* fix macro crate

* make tests compile

* fix more nits

* fix doc tests

* fix more nits

* more nits

* core: remove polkadot-sdk/std

* cargo fmt

* remove polkadot-sdk/std by default

* Update metadata/Cargo.toml

* remove more std

* Update Cargo.toml
2024-10-11 14:19:11 +02:00
Niklas Adolfsson 5bf1756394 chainhead backend: notify subscribers when the backend is closed (#1817)
* FollowEvent::stop include backend closed or not

* simplify code: enum variant BackendClosed

* check both stopped and backend closed

* simplify hacky code

* remove old test

* Update subxt/src/backend/chain_head/follow_stream_driver.rs

* Update subxt/src/backend/chain_head/mod.rs

* Update subxt/src/backend/chain_head/mod.rs

* Update subxt/src/backend/chain_head/follow_stream_driver.rs
2024-10-11 11:14:50 +02:00
Niklas Adolfsson 3807b29f36 rpc: stabilize chainhead backend (#1802)
* rpc: stabilize ChainHeadBackend

* remove noise from example

* add missing features

* make tests compile

* make tests compile v2

* revert stop event

* feature-gate runtime

* Update subxt/Cargo.toml

* add docsrs feature stuff

* Update subxt/src/backend/chain_head/mod.rs

* Update subxt/src/backend/chain_head/mod.rs

* Update subxt/src/backend/chain_head/mod.rs
2024-10-03 18:14:38 +02:00
Pavlo Khrystenko 7f9a1a17c0 derive serialize on more types (#1797)
* derive serialize on more types

---------

Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
2024-10-03 11:15:09 +02:00
Niklas Adolfsson cbf05d1999 fix: error message on rpc errors (#1804) 2024-10-01 20:01:07 +02:00
Niklas Adolfsson 72db833def reconn-rpc-client: parse URL before connecting (#1789)
* reconn-rpc-client: parse URL before connecting

It was hard to figure whether one simply entered a faulty URL
and it tried to reconnect according to the retry policy.

With this change we first parse url and then try to reconnect.
This will detect invalid directly instead of waiting for the retry
to complete.

* clippy fix

* wasm: &str -> Url
2024-09-30 16:40:20 +02:00
Pavlo Khrystenko 8f2c92f0ef add reconnecting tests for unstable_backend (#1765)
* add tests for unstable_backend

---------

Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
2024-09-30 00:03:11 +02:00
Alexandru Vasile 2471aefe3b clippy: Remove unneeded ?Sized bound and replace never type with () (#1758)
* storage: Remove ?Sized bound

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* backend: Use () instead of !

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* backend: Return directly

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

---------

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
2024-09-06 17:14:40 +02:00
Pavlo Khrystenko b8735e5782 Add tests for legacy Backend impl (#1751)
---------

Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
2024-09-06 11:26:22 +02:00
Niklas Adolfsson e4f6f08eb7 fix: nits in tests (#1750)
* fix: nits in tests

* fix filter nit
2024-09-02 14:13:27 +02:00
Niklas Adolfsson 4bc27d4977 refactor: replace reconnecting-jsonrpsee-ws-client with subxt-reconnecting-rpc-client (#1705)
* feat: add native subxt rpc reconn client

* add jsonrpsee dep to reconnecting-client

* Update subxt/src/backend/rpc/reconnecting_rpc_client/tests.rs

* fix grumbles

* add simple wasm test for reconnecting client

* fix test build

* cargo fmt

* remove reconnect apis

* Update testing/wasm-rpc-tests/tests/wasm.rs

* Update subxt/src/backend/rpc/reconnecting_rpc_client/tests.rs

* Update subxt/src/backend/rpc/reconnecting_rpc_client/tests.rs
2024-08-27 15:18:06 +02:00
Niklas Adolfsson bec896d91a rpc: add full support reconnecting rpc client (#1505)
* add simple reconnecting rpc client

* initial retryable calls

* add reconnecting backend

* add reconnecting example for unstable backend

* add todo what isn't working

* FollowStream: restart on reconn

* naive fix: fetch sub_id in stream_headers

* cleanup

* remove resubscribe APIs

* cleanup and remove many wrapper streams

* remove retry backend

* legacy rpc: make it retryable

* unstable rpc: make it retryable

* fix nits

* support wasm as well

* remove deadcode

* address grumbles

* revert rpc methods

* don't create a subscription per block

* get rid off retry logic in subxt rpc

* Update subxt/Cargo.toml

* Update subxt/src/backend/legacy/mod.rs

* Update subxt/src/backend/legacy/mod.rs

* remove outdated comments

* fix bad merge

* Fix reconnecting RPC client and update dependencies

* add back retry logic and remove `finito`

* fix nits

* cleanup

* add hack for race when reconnecting

* backend: emit Stop event DisconnectWillRecoonect

* merge reconnecting client examples

* add fn retry_stream

* cleanup

* add all features from reconnecting-rpc-client

* fix build

* remove needless retry for fetch_storage

* StorageFetchDescendantKeysStream handle disconnect err

* dont retry transactions

* fetch subscription ID from FollowStreamMsg

* fix nits

* Update subxt/src/backend/legacy/mod.rs

* Update subxt/src/backend/legacy/mod.rs

* add reconn to StorageItems stream

* StorageFetchDescendantKeysStreamchore: retry storage call

* RetryStream: emit DisconnectWillReconnect msg

* runtime subscriptions ignore DisconnectWillReconn

* Update subxt/examples/setup_reconnecting_rpc_client.rs

* Update subxt/src/client/online_client.rs

* Update subxt/src/client/online_client.rs

* Add custom stream wrapper for finalized blocks

* add missing retry block

* clippy

* clippy again

* cleanup

* remove duplicate logic

* fix more grumbles

* Update subxt/examples/setup_reconnecting_rpc_client.rs

Co-authored-by: James Wilson <james@jsdw.me>

* simplify the example

* remove pin-project dep

* remove duplicate retry logic

* remove extra code

* specify trait bounds for retry api

* simplify the example

* fix weird Poll::Pending return

* fix nit in poll impl

* remove needless paths

* make retry_stream pub and add doc examples

* Update subxt/src/backend/utils.rs

---------

Co-authored-by: James Wilson <james@jsdw.me>
2024-05-08 15:12:54 +02:00
Alexandru Vasile a5d94a4b8b metadata: Fix cargo clippy (#1574)
* metadata: Fix cargo clippy

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* subxt/backend: Fix clone clippy

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* tests: Use clone into

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

---------

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
2024-05-06 10:11:39 +02:00
Alexandru Vasile 33a891b9da Stabilize transactionWatch methods (#1539)
* Stabilize transactionWatch

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Keep consistency in naming method class

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

---------

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
2024-04-20 14:31:05 +02:00
Alexandru Vasile c57df0845c Stabilize transactionBroadcast methods (#1540)
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
2024-04-20 13:58:58 +02:00
Snoppy 2bf782581b chore: fix typos and link broken (#1541)
Signed-off-by: snoppy <michaleli@foxmail.com>
2024-04-19 14:50:04 +02:00
Alexandru Vasile c124e17336 Stabilize chainHead methods (#1538)
* Stabilize chainHead methods

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Rename fn snake case

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* docs: Fix documentation

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

---------

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
2024-04-19 11:27:50 +02:00
James Wilson 1e111ea9db Make subxt-core ready for publishing (#1508)
* Move Extrinsic decoding things to subxt_core and various tidy-ups

* A couple more fixes and fmt

* first pass moving tx logic to subxt_core

* cargo fmt

* fix wasm example

* clippy

* more clippy

* WIP Adding examples and such

* Move storage functionality more fully to subxt_core and nice examples for storage and txs

* Add example for events

* consistify how addresses/payloads are exposed in subxt-core and add runtime API fns

* Add runtime API core example

* fmt

* remove scale-info patch

* Add a little to the top level docs

* swap args around

* clippy

* cargo fmt and fix wasm-example

* doc fixes

* no-std-ise new subxt-core additions

* alloc, not core

* more no-std fixes

* A couple more fixes

* Add back extrinsic decode test
2024-04-15 15:20:11 +01:00
James Wilson 9765ad067a Remove dupe storage item if we get one back, to be compatible with Smoldot + legacy RPCs (#1534)
* Remove dupe storage item if we get one back, to be compatibel with Smoldot + legacy RPCs

* remove commented-out code
2024-04-15 11:42:08 +01:00
Alexandru Vasile b31131d21d testing: Prepare light client testing with substrate binary and add subxt-test macro (#1507)
* testing: Add long running light client flag and cfg aliases

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* testing: Expose clients depending on feature flags

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* subxt: Use unstable backend for light client

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* testing: Disable flaky lightclient tests

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* ci: Add long runnnig step

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Revert "subxt: Use unstable backend for light client"

This reverts commit ea6f3cc58b.

* ci: Long running tests for 60 mins

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* ci: Use 16 cores for light-client testing

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* ci: Isolate light-client testing to save CI minutes

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* testing: Retry on Tx::Dropped for lightclinet only

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* testing: Wait for more blocks for the lightclient init

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* subxt: Use unstable backend for light client

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* testing: Disable legacy RPC tests

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* testing: Disable sudo and contracts tests

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* testing: Retry constructing lightclient on read-proof errors

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* testing: Disable tx dynamic test

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* proc-macro: Timeout for tests

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* testing: Add timeout 800 seconds

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* proc-macro/tests: Adjust subxt-test proc-macro

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* proc-macro: Rename crate to subxt-test-proc-macro

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Use default subxt-proc-macro timeout

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* light-client: Remove println

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* subxt: Remove tokio as dependency, use it only for testing

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* testing: Chagne default timeout to 6 seconds

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* proc-macro: Add env timeout variable

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* ci: Add subxt env var for controling test timeouts

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* tests/tx-retries: Retry on `Non node available` error

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* testing: Use unstable backend for testing lightclient

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* testing: Remove old lightclient object

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* testing: Adjust for the new interface

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* backend/rpc: Allow older version of the initialized event

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* rpc/tests: Check initialized decodes correctly

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* ci: Reset workflow

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Apply cargo fmt

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Remove unused dep

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Remove gitmerge old file

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Remove unused dep

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* rename proc-macro to subxt-test-macro

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* tests: Remove txretries for lightclient

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* tests: Wait for 5 blocks for the lightclient full testing suite

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* tests: Group imports

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* macro: Rename const value

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

---------

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
2024-04-08 11:34:20 +03:00
Tadeo Hepperle a0cb14aa4f subxt-core crate (#1466)
* start migrating, broken

* first iteration of updating

* fmt and clippy

* add Composite<u32> decoding via scale value patch

* bump scale type gen versions

* fix decoding with new scale decode

* compiling with changed deps

* core utils, condig, client, metadata

* core crate compiling

* signer crate no once lock

* add core to no-std-tests, change imports

* broken commit, start pulling everything together in subxt

* port more things to subxt

* events in core crate, extrinsics sadly much more difficult

* almost all examples pass again

* dynamic values fix in examples

* fix no std issue and fmt

* remove unused dependencies

* fix lightclient impl

* runtime version refactor

* formatting and addressing nits

* more comments addressed

* update wasm example and no-std-signer tests

* other nits and error impl on signer errors

* fix feature flag

* fix runtime version refactor

* fix doc links

* fix integration tests

* fix feature flag gated client state

* fix native feature in CI

* fix lightclient utils

* make imports more lean in subxt-core

* integrate changes from subxt-core imports into subxt

* other changes in subxt simplify imports more

* fix  and docs

* doc false for cli

* fix clippy

* remove events block hash in tests

* codegen no-std support in generated code

* export alloc crate for no-std codegen

* fix doc test

* implement James comments

* remove std traits, use core traits instead

* address nits

* remove unusued dep in no-std tests

* fix Box import in no_std

* sp-crypto-hashing instead of sp-core-hashing

* bump scale-typegen, add no std codegen tests

* fix some things

* replace unmaintained derivative with derive_where to remove non-canonical warnings

* fmt

* remove unused dep

* fix deps

* update artifacts to fix type ID mismatches

* bump to latest scale-typegen

---------

Co-authored-by: James Wilson <james@jsdw.me>
2024-03-27 08:55:08 +00:00
Alexandru Vasile 92c1ba7f66 unstable_rpc: Add transactionBroadcast and transactionStop (#1497)
* unstable_rpc: Add transactionBroadcast and transactionStop

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* tests: Check transactionBroadcast works

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* testing: Enable default feature for subxt-signer

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* tests: Increase number of blocks to look for

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Fix clippy for unneed let binds

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Update subxt/src/backend/unstable/rpc_methods.rs

Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>

* tests: Adjust txBroadcast test

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* tests: Add test for txStop

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* tests: Ignore compact encoded lenght prefix

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

---------

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
2024-03-26 17:14:54 +02:00
James Wilson b069c4425a Rework light client (#1475)
* WIP second pass over light client code for simpler API

* First pass new light client

* pub(crate) LightClientRpc::new_raw(), and fmt

* Update examples and add back a way to configure boot nodes and fetch chainspec from a URL

* Fix light client examples

* remove unused deps and tidy lightclient feature flags

* fix wasm error

* LightClientRpc can be cloned

* update light client tests

* Other small fixes

* exclude mod unless jsonrpsee

* Fix wasm-lightclient-tests

* add back docsrs bit and web+native feature flag compile error

* update book and light client example names

* fix docs
2024-03-15 15:21:06 +00:00
Niklas Adolfsson dfd6e108cd rpc v2: chainhead support multiple finalized block hashes in FollowEvent::Initialized (#1476)
* chainhead rpc `block_hash -> finalized_block_hashs`

* cleanup

* address grumbles

* address grumbles: inc this.rel_block_num

* rel_block_num => rel_block_age for clarity

---------

Co-authored-by: James Wilson <james@jsdw.me>
2024-03-12 17:42:29 +00:00
James Wilson ddd0865fa9 Make storage_page_size for the LegacyBackend configurable (#1458) 2024-02-29 13:13:58 +00:00
James Wilson 70d56dc62f avoid a panic in case we try decoding naff bytes (#1444) 2024-02-24 11:48:39 +01:00
James Wilson 19be36cd2b Fix error mapping to wrong transaction status (#1445) 2024-02-23 17:24:04 +00:00
James Wilson 6f63ded5c1 [audit] Handle errors when fetching storage keys from Unstablebackend (#1440)
* Handle errors when fetching storage keys from Unstablebackend

* cargo fmt
2024-02-23 14:28:08 +01:00
James Wilson 4614ff7bbb Swap type aliases around to be semantically correct (#1441) 2024-02-23 14:27:57 +01:00
Alexandru Vasile 25ff4ecc8b subxt: Derive std::cmp traits for subxt payloads and addresses (#1429)
* subxt/tx: Derive std::cmp traits

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* subxt/runtime_api: Derive std::cmp traits

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* subxt/constants: Derive std::cmp traits

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* subxt/custom_values: Derive std::cmp traits

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* subxt/storage: Derive std::cmp traits

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* subxt: Fix non_canonical_partial_ord_impl clippy introduced in 1.73

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* subxt: Add comment wrt derivative issue that triggers clippy warning

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Update subxt/src/backend/mod.rs

* Update subxt/src/constants/constant_address.rs

---------

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
2024-02-13 12:06:28 +02:00
Niklas Adolfsson cb67f94455 feat: add reconnecting-rpc-client (#1396)
* initial commit

* update to reconnecting-ws-client v0.2

* re-export: reconnecting_rpc_client behind feature

* add helper function for reconnect

* fix nit in example

* simplify code without weird error fmt

* address grumbles

* address grumbles

* update reconnecting-ws-client 0.3

* cleanup error message
2024-02-08 13:19:06 +01:00
Niklas Adolfsson 8dc62fcc25 rpc: rename transaction to transactionWatch (#1399) 2024-01-26 11:30:27 +01:00
James Wilson 0f48d54209 Return Pending rather than loop around if no new finalized hash in submit_transaction (#1378)
* Return Pending rather than loop around if no new finalized hash in submit_transaction

* uptodate => up-to-date

Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>

---------

Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
2024-01-18 17:54:46 +00:00
James Wilson e36f4ad270 fix submit_transaction debug logging of message 2024-01-18 12:35:29 +00:00
James Wilson cf39054aad merge master 2024-01-17 17:38:34 +00:00
James Wilson 36bd933b00 clippy 2024-01-17 17:30:59 +00:00
James Wilson 0154f8a902 change panic to Err just to be on the safe side 2024-01-17 17:26:10 +00:00
James Wilson f38f68b2d0 panic if None returned from subscription too, also with stats 2024-01-17 17:24:21 +00:00
James Wilson 6b83016a6d Add logging to submit_transaction and unstable driver, and ensure unpin evs complete 2024-01-17 17:07:40 +00:00
Pan chao 30a732bc47 chore(subxt/src): typo fix (#1370)
* rpcmethods

* followstr

* mod and else
2024-01-17 12:13:26 +01:00
James Wilson 553343548e fix: don't unpin blocks that may show up again (#1368)
* backend(fix): Early unpin for pruned blocks with no active `BlockRef`

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* backend/tests: Check unpinning only after max_life time

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* backend/tests: Remove unpinning when droped tests

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* backend/tests: Ensure new blocks are not unpinned

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* backend: Add only pruned blocks to unpin hashset and add a test

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* backend: Introduce the `UnpinPolicy`

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Update subxt/src/backend/unstable/follow_stream_unpin.rs

* backend: Fix clippy

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Only unpin blocks that have been pruned by the backend

* Fix comments

* Mark initialized and finalized blocks as 'can_be_unpinned' too and tests

* fmt

* tweak a couple more comments

* tidy tests and fix undeterministic check

* Fix wrong names in comments

* tweak another test to focus it a bit more

* clippy

* wee rename of args in a couple of test helpers

* add some logs and simplify submit_transaction in the same way Alex did

* ditch logging again and keep to the experiment pr

* cargo fmt

* reduce CI timeouts to 30mins

* Handle Init and Stop events in submit_transaction too, just in case

---------

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
2024-01-17 09:35:02 +00:00
Niklas Adolfsson df85e46a62 fix: runtime upgrades in unstable backend (#1348)
This commit changes the following:

1. FollowEvent::Finalized: just remove the finalized and pruned blocks from runtimes
2. FollowEvent::Initalized: just remove the finalized block from runtimes

Co-authored-by: James Wilson <james@jsdw.me>
2024-01-16 11:58:19 +01:00
Niklas Adolfsson 437ff7ee41 generate docs for feature gated items (#1332)
* generate docs for feature-gated items on crates.io

* add newline in Cargo.toml

* unify newlines

* fix clippy

* introduce macros for features

* commit missing file

* Update subxt/src/lib.rs

* make it compile
2024-01-12 14:18:34 +01:00
Niklas Adolfsson ee95026186 chore(deps): bump jsonrpsee v0.20 to v0.21 (#1347)
* chore(deps): bump jsonrpsee v0.20 to v0.21

* fix build

* update Cargo.lock in wasm-tests
2024-01-12 10:48:44 +01:00
Alexandru Vasile d004789b04 backend(fix): Remove only finalized blocks from the event window (#1356)
* backend(fix): Remove only finalized blocks from the event window

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* backend: Improve documentation

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* backend/tests: Check new block is delivered after finalized event

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* backend: More docs about finalzied / prunning and new block / best block

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

---------

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
2024-01-11 15:50:44 +01:00
Tadeo Hepperle 7f714cbcb9 Make using insecure connections opt-in (#1309)
* add insecure url checks

* rename variables

* add feature flags to expose Url properly

* fix test compile error

* fix feature errors

* remove comment

* add url crate and use it for url parsing

* fix compile errors

* satisfy the holy clippy

* fix typos and host loopback

* macro attribute, provide validation function in utils

* fix expected output of ui tests

* remove the success case for --allow-insecure because we cannot establish ws:// connection at the moment.
2024-01-09 18:18:23 +01:00
Niklas Adolfsson 38d8e714ec fix clippy (#1334) 2024-01-03 12:18:56 +01:00