* 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>
* 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
* 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
* fix js-sys versions
* add nit comments
* 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>
* lightclient: Refactor the background protocol to receive unsub method
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* light-client: Unsubscribe if the user dropped the subscription
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Refactor background task for borrow-checker
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient/rpc: Pass the unsub method name to the background task
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Unsubscribe with subscription ID as param
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Rename subscription states
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* 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>
* asset hub example and book adjustment
* formatting
* recursive derives
* polkadot monitor example and book adjustments
* formatting
* adjust docs and examples, add dynamic example
* james suggestions
* fmt
* chore(subxt/src): typo fix (#1370)
* rpcmethods
* followstr
* mod and else
* Weekly Cronjob fetching artifacts and generating polkadot.rs file. (#1352)
* github CI action cronjob
* add commit message
* fix the CI yml files
* binary crate for CI script with substrate-runner
* update the CI script
* correct the artifacts script
* remove bash script
---------
Co-authored-by: James Wilson <james@jsdw.me>
Co-authored-by: Pan chao <152830401+Pan-chao@users.noreply.github.com>
* testing(fix): Ensure lightclient chainSpec is at least one block old
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Revert "testing(fix): Ensure lightclient chainSpec is at least one block old"
This reverts commit 0eafcb2ca59d1f1cd2cef86b770f5a0401cce59f.
* lightclient(fix): Ensure lightclient chainSpec is at least one block old
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Link smoldot issue
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Use tokio under lightclient feature flag
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Do not sleep on errors to fetch the chainSpec
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* artifacts: Remove test file
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Subscribe to two finalized blocks
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Revert cargo toml
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* 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>
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>
* 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
* integrate scale-typegen, remove types mod
* reintroduce default substitutes and derives
* support runtime_types only again
* generating polkadot.rs ok
* update scale-typegen to discrete error types
* scale-typegen-api-changes
* add note about UncheckedExtrinsic in default substitutes
* add resursive attributes and derives
* adjust example where Clone bound recursive
* move scale-typegen dependency to workspace
* expose default typegen settings
* lightclient: Fix wasm socket closure called after being dropped (#1289)
* lightclient: Close wasm socket while dropping from connecting state
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Construct one time only closures
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing: Enable console logs for lightclient WASM testing
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Separate wakes and check connectivity on poll_read
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Close the socket depending on internal state
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Revert "lightclient: Separate wakes and check connectivity on poll_read"
This reverts commit 866094001d4c0b119a80ed681a74b323f74eae1b.
* lightclient: Return pending if socket is opening from poll_read
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Close the socket on `poll_close`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Reset closures on Drop to avoid recursive invokation
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Close the socket if not already closing
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* workflows: Install rustup component for building substrate (#1295)
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cli: Command to fetch chainSpec and optimise its size (#1278)
* cli: Add chainSpec command
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cli/chainSpec: Move to dedicated module
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cli: Compute the state root hash
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cli: Remove code substitutes
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* artifacts: Update polkadot.json
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* scripts: Generate the chain spec
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cli: Remove testing artifacts
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cli: Fix clippy
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cli: Apply rustfmt
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cli: Introduce feature flag for smoldot dependency
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cli: Rename chain-spec to chain-spec-pruning
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* scripts: Update chain-spec command
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* remove comments and unused args
* Update substrate- and signer-related dependencies (#1297)
* update crypto dependencies, adjust keypair
* add scale_info::TypeInfo derive in some places
* add multi signature derive
* fix lock file
* fix lock file again :|
* adjust to new interface in scale-typegen
* use released scale typegen
* reintroduce type aliases
* introduce type aliases again using scale-typegen
* cargo fmt and clippy
* reconcile changes with master branch
* update polkadot.rs
* bump scale-typgen to fix substitution
* implemented Alex suggestions, regenerated polkadot.rs (did not change)
* resolve conflicts in Cargo.lock
* make expect messages more clear
* correct typos
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
* 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>
* 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.
* subxt: Remove unstable lints that cause compile warnings
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cargo: Switch to workspace lints
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cargo: Fix codec package at root level
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cargo: Move profiles to the root level
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Fix lightclient and metadata crates
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Revert "cargo: Fix codec package at root level"
This reverts commit cdf9e1628d708a972673eb3a9e967b6896edbd73.
* Fix complexity clippy
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cargo: Remove lints to be replaced by `cargo machete`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cargo: Remove unused dependencies (detected by machete)
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* ci: Add machete step
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cargo: Bump rust version
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* ci: Rename machete step
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* ci: Rename cargo machete step
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* storage/fix: Use partial key instead of root key for iter
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* storage: Allow partial key construction
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* storage: Allow less provided types than num of hashes
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* storage: Error on more fields than types
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing: Check partial key iteration
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* storage: Rename variable wrt partial address bytes
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* storage: Identical storage key to root key if no keys are provided
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Add example using legacy rpc
* Illustrate how account_nonce and system_acc_next eventaully cathces up
* Adapt and add rpc_legacy example to book. Add missing light_client example too
* cargo fmt
---------
Co-authored-by: Fredrik Simonsson <fredrik@nodle.com>
* First pass making matching on signed exts more general and handlng SkipCheckifFeeless
* remove unneeded derives (only exts we can decode into are handled by the user)
* No SkipCheckIfFeeless in integration tests either
* Cargo fmt
* Remove SkipCheckIfFeeless specific logic
* clippy
* matches to just return bool, not result
* remove now-invalid comment
* return error from find if .iter() errors