* Support v16 metadata and use it by default if it's available
* lockfile
* fix blocks test; new transaction extension in kitchensink runtime
* Bump scale-typegen to 0.11.1 to cater for Duration prelude type
* fmt
* Fix no-std test building
* Cargo update and bump substrate deps
* Update test and no-std deps
* fmt
* fix test
* 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
* subxt macro, helpful error messages
* adjust ui tests
* fix lock file
* format
* Update macro/src/lib.rs
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* incorperate nits
* update Cargo.lock to avoid compatibility issues
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* add web feature to subxt codegen
* add getrandom
* remove compile error
* metadata: Generate runtime outer enums if not present in V14 (#1174)
* metadata: Extend outer enum generation for V14
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Generate outer enums if not present
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Porpagate v14 error instead of panic
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Try to find `RuntimeCall` then `Call` enums
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Ensure the returned type is variant for outer enums
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Replace or with or_else
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Apply clippy
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Return error and generate only `RuntimeError`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Remove modified path
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata/tests: Check missing runtime types
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* add empty use of getrandom
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
Co-authored-by: James Wilson <james@jsdw.me>
* Move all deps to workspace toml
* cargo fmt and codec 3.4, removing now unneeded 'full' feature
* add wasm-tests to workspace and fix subxt inheritng
* cargo fmt
* wasm-test thing can't be in workspace so revert that
* remove unwanted target dir from wasm-tests
* chore: use workspace inheritance for package info
* add rust-version field into workspace package
* .workspace = true
---------
Co-authored-by: James Wilson <james@jsdw.me>
* WIP implement custom derives per type
* WIP wiring up specific type derives
* Fmt
* Rename GeneratedTypeDerives to Derives
* Fmt
* Fix errors
* Fix test runtime
* Make derives appear in alphabetic order
* Clippy
* Add derive_for_type attribute to example
* Add docs to example
* Rename GeneratedTypeDerive
* Rename ty to type in attribute
* Update darling
* Update codegen/src/types/derives.rs
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
* Update codegen/src/types/mod.rs
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
* Update codegen/src/types/mod.rs
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
* review: update method name
* Add unit tests for combined derives
* Remove out of date docs
* Add macro usage docs
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
* move into subfolder step 1
* Make folders a workspace again
* Move examples into their own workspace crate to make them more visible and easier to run
* clippy fix
* newline
* tweak releasing steps for folder move
* reference exampels more clearly in top level readme
* WIP update dependencies to crates versions
* Use released versions of sp-version and sp-arithmetic
* Attempt to align version of sp-keyring used to correspond to 4.0.0 releases. No luck but closer
* sp-keyring 4.0.0
* also sp-keyring 4.0.0 for macro crate
* simplify cargo.tomls
Co-authored-by: James Wilson <james@jsdw.me>
* Remove test macro
* Remove client crate
* Create tests crate and move pallet specific tests there
* Extract client, remove metadata and extra, more demolition
* Update substrate dependencies to git dependencies
* Remove Store stuff for now
* Comment out some Call usages
* Add back Runtime trait coped from original System trait
* Make subxt lib compile
* Delete old proc macros and copy over type generation from chameleon
* WIP make transfer balance test pass
* Change to subxt attribute macro
* WIP provide user defined type substitutes
* User defined type substitutes compile
* WIP submitting transactions
* WIP transfer balance test
* Fix macro
* Cargo fmt
* WIP generating storage hashers
* WIP add AccountData trait for fetching the nonce
* Support single type storage map keys
* WIP impl AccountInfo retrieval
* Fix up storage struct generation
* Implement AccountData triait directly on storage entry
* Borrow storage map key and convert account id
* Implement storage fetch client methods
* Remove legacy metadata storage key construction
* Rename CheckEra to CheckMortality
* Substitute perthings types for compact impls
* Fmt
* Downgrade dyn-clone for cargo-contract compat
* Scale-fo 1.0
* scale-info 1.0
* Remove special range handling
* Restore wildcard type params
* Frame metadata 14.0
* WIP decoding events
* WIP more dynamically decoding events
* Fmt
* Decode events, handle errors
* Uncomment some tests
* Remove unused get_mod function
* Fix some warnings
* Fix some more warnings
* Fix some more warnings
* Add tests mod
* Rename node-runtime tests mod to frame
* Fix some warnings
* Fmt
* WIP generate storage client with getters
* Storage client compiling
* Generate storage client api
* Fix up system account query account ids
* WIP generating tx api fns
* Only generate tx api fields when calls available
* Fix tx api call fns
* Fmt
* WIP generate event structs
* call functions not async
* Derive Eq for comparison on generated types
* Generate event structs
* Fix call name
* Fmt
* Update node runtime metadata to substrate c000780db
* Download latest substrate release for integration testing
* Fix event decoding
* Remove unused imports
* Fix plain storage access, total_issuance pass
* Fmt
* Restore contracts tests
* Backoff connecting to substrate node
* Add required TypeInfo impls for local SignedExtension impls
* Remove unnecessary assert formatting
* Fix handling of DispatchError
* Refactor contracts tests
* Troubleshooting contract not found
* Remove more client feature stuff
* Fix dynamic event variant decoding, write consumed index to output
* Fmt
* Use substrate branch with heavy dependency removed
* Remove sp-rcp dependency, define types locally
* Ignore cargo timeing files
* Use my branch for substrate test deps
* Fix storage key type gen
* Comment out fetching contract info
* Add key iteration, extract storage client from main client
* Debugging key generation
* Use substrate master branch
* Fix call test
* Remove TypeSegmenter and dynclone dependency
* Publicly expose Rpc mod
* Unused import warnings
* Add getter for runtime metadata
* Add pallet and event indices for raw events
* Add is_call and is_event convenience trait functions
* Add missing docs
* Refactor tests crate
* Restore remaining client tests
* Fmt
* Fix warnings
* Restore get_mod as test helper and fmt
* Use client references for api calls
* Fix api usages with methods
* Use Bytes for RawEvent debug
* Update metadata
* Restoring some Balances tests
* Populate runtime storage metadata
* Restore balances lock test
* Restore Balances error test
* Fmt
* Restore transfer subscription API
* Staking test
* Restore another staking test
* Restore another staking test
* Restore another staking test
* Partially restore chill_works_for_controller_only staking test
* Fix fetching Optional storage entries
* Restore staking bond test
* Restore remaining staking tests
* Fmt
* Restore sudo tests
* Add some system tests
* Fmt
* Resolve some todos
* Remove pass through rpc methods on Client, expose via rpc() getter
* Remove more rpc pass through methods
* Remove submit tx pass through rpc methods
* Add some comments to SubmittableExtrinsic methods
* Construct the runtime api from the client
* Fmt
* Use From trait instead of new for AccountData query
* Rename subxt_proc_macro crate to subxt_macro
* Fix AccountData From impl
* Extract codegen crate from macro crate
* Fmt
* Replace chameleon hidden field name
* Extract StructDef for generating structs
* More refactoring of StructDef, moving towards sharing with typegen
* Replace explicit tests crate with single implicit integration tests crate
* Rename from substrate-subxt to subxt
* Fix runtime path relative to root Cargo.toml
* Move RpcClient creation to RpcClient
* WIP get examples to compile
* Rename Runtime to Config trait
* WIP implementing default Config
* WIP implementing default extrinsic extras
* fix metadata constants (#299)
* Move DefaultConfig definition and impl to macro
* Extract type substitute parsing to ir mod
* Extract calls, events and storage from api generation
* Add some hardcoded type substitute defaults
* Fmt
* Add utility pallet tests (#300)
* add batch call test example
* add pallet utility tests
* add utility module
* fix warnings
* Add polkadot runtime metadata for example
* Fix system errors and fmt
* Add subxt-cli crate
* Add metadata and codegen subcommands
* Make subxt-cli codegen command work
* Fmt
* Add polkadot codegen test
* Comment about how to run codegen
* Derive AsCompact for structs with single concrete unsigned int field
* Fix bitvec codegen, adds as non optional dependency
* Regenerate polkadot api with bitvec fix
* Edition 2021
* Fix polkadot codegen with bitvec
* Polkadot balance transfer is working
* Fix fetch remote
* Fix transfer_subscribe example
* Fix submit_and_watch example
* Fmt
* Generate storage iter method for iterating over keys
* Fmt
* Fix existential deposit test
* Fix staking tests
* Add option for custom generated type derives
* Add generated type derives for test runtime api
* Fmt
* Copy WrapperTypeOpaque from substrate, add Encode/Decode
* Fmt
* Extract type generator to module, separate & fix tests
* Fully qualified primitive and prelude types
* Fix up remaining type gen tests
* Skip formatting of generated polkadot example code
* Remove empty utility test file.
* Newline
* Update cli/src/main.rs
Co-authored-by: David <dvdplm@gmail.com>
* Rename subxt-cli executable to subxt
* Update src/client.rs
Co-authored-by: David <dvdplm@gmail.com>
* Add some code docs to TypeGenerator.
* Extract TypePath to own file
* Extract type def generation to separate file
* Renamed ModuleType to TypeDefGen
* Fmt
* Factor out type parameter from final_key
* Fix some type paths
* Resolve some todos
* Resolve some panic todos in events
* Add EventsDecodingError
* Decode compact composite types with a single primitive field
* Decode compact composite types with a single primitive field
* Update src/metadata.rs
Co-authored-by: Andrew Plaza <aplaza@liquidthink.net>
* Remove Perbill compact substitute types
* Remove todos regarding maintaining Rust code items, promoted to follow up issue.
* Remove todo regarding overridding default config impl
* Remove todo regarding overridding default Extra
* Remove todo regarding AccountData storage type defintion
* Remove todo regarding borrowing storage key arguments
* Remove type substitution tests todo
* Remove `Box` field name type hack todo
* Remove Compact todo
* Remove sudo todos
* Remove BitVec implementation todo
* Fmt
* Add health warning to README
* Fix up health warning
Co-authored-by: Paulo Martins <paulormart@users.noreply.github.com>
Co-authored-by: David <dvdplm@gmail.com>
Co-authored-by: Andrew Plaza <aplaza@liquidthink.net>