* WIP updating to syn 2.0.0
* WIP darling compat
* Update darling and syn workspace deps
* NestedMeta::parse_meta_list
* Rename attribute keyword type property to path
* Fmt
* Update more type to path
* Unused darling
* Cargo.lock
* Add missing syn features
* Patch all substrate deps to use my substrate branch
* default-features = false causing issus in test-runtime
* Use substrate polkadot release branch
* Use default-features for sp-runtime again :(
* Restore default-features for subxt-cli/sp-core
* Fix module error integration test
* Add Send + Sync bounds to ExtrinsicEvents::iter()
* Elide lifetime
* Revert adding Send + Sync
* Add Sync bound to Rpc::ClientError
* Remove version in subxt-metadata
* Use released crates
* Use released sp-keyring
* Fix sp-keyring deps
* Remove unnecessary sp-keyring default-features = false
* Add failing test for compact generic parameter
* WIP refactor type generation
* Fmt
* Remove deprecated rustfmt optionns
* Remove license template path
* Update parent type parameter visitor
* Introduce different methods for generating a type path for a field
* Add comment
* Fix weights refs
* Add extra compact test cases
* Fmt
* 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>
* Remove health warning
* Update cargo-contract link
* Add example of initializing the api client
* Explain RuntimeApi parameterization
* Add storage query example
* Add basic extrinsic example
* 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>
* Add basic event decoding test
* Failing compact event field test
* Fmt
* Fix compact event field decoding
* Remove println
* Add test for compact wrapper struct
* Revert "Add test for compact wrapper struct"
This reverts commit 4e8332ddcd9b758973bdecbea9901c4a378e26b7.
* Split compact tests and add multiple events test
* Add links to projects using subxt.
* Add phala-pherry to list
Co-authored-by: h4x3rotab <h4x3rotab@gmail.com>
Co-authored-by: James Wilson <james@jsdw.me>
Co-authored-by: h4x3rotab <h4x3rotab@gmail.com>
* Make system properties an arbitrary JSON object
* Add comment
* Make timestamp test more reliable
* Fmt
* Update src/client.rs
Co-authored-by: David <dvdplm@gmail.com>
* Update src/client.rs
Co-authored-by: David <dvdplm@gmail.com>
* Fix clippy errors and warnings
* Fix tests
Co-authored-by: David <dvdplm@gmail.com>
* 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>
* Remove integration-tests feature, use test node process
* Allow tests to run in parallel
* Fmt
* Fix errors
* Fix more errors
* Use test node process in test context
* Remove code for managing accounts for contract tests
* Update contract dispatchables
* Fix up contract calls for 3.0 compat
* Fmt
* Fix up some tests
* Fix some more tests
* Fix some more tests
* Fmt
* Move tests to module in own file
* Add test-node-proc crate
* Move test node to main lib, fix compilation errors
* Fmt
* Attempted port scanning
* Use global static port to allocate open ports
* Register missing type sizes
* Fix port scanning and balances test
* Don't wait for blocks on insert_jey test
* Fmt
* Remove unused dependencies
* Download v3.0.0 rust binary
* Move substrate bin to home dir
* Add test instructions to README
* Figure out the $PATH
* Remove path echo
* Add check for missing substrate binary on the PATH
* @niklasad1 review: don't include client feature for tests
* Global registration of type segmenters for event decoding
* Perform type sizes check when building client
* Introduce EventTypeRegistry for global runtime type sizes
* Fmt
* Register runtime type sizes on creation of EventTypeRegistry
* Register more default dispatch types
* Add missing type sizes
* fmt
* Fix up register_type_size builder method
* Update doc comments
* Make register_default_type_sizes public
* Don't allow duplicate registered types
* Remove call to supertraits type registration, done manually in Runtime
* Fix tests and warnings
* Fix duplicate type registration
* Fmt
* review: use is_empty()
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* Add panic docs
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* Revert contracts put_code test to pure code (not using the macro)
* Test contract instantiate
* Fmt
* Extract put_code and new_client functions
* Generate fresh accounts for contract tests to allow reruns without a chain purge
* Fetch and increment nonce to allow concurrent test runs
* fmt
* Failing contract call test
* Fmt and fix compilation
* Fix error message for contract call
* Fix call test
* Update contract execution event comment
* Remove redundant feature flags, now on module
* Update event data comment
* Use fetch_add
* Fmt
* Extract extrinsic
* Extract extrinsic types to own module
* Fix compiler errors
* Fix warnings
* Fmt
* Pin wabt-sys to 0.7.1, it fails (on my machine) with 0.7.2
* Fix up tests
* Fmt
* Reexport RuntimeVersion
* Update to substrate alpha.7
* Remove gas limit from contracts put code
* Rename SystemEvent::ReapedAccount to KilledAccount
* Log debug event received before attempting to decode
* Temporary registration of Balance type before #102 merged
* Show contract test errors, increase instantiate gas_limit
* Use substrate dependencies from crates.io
* Remove test that depends on node_runtime.
Because node_runtime is not on crates.io and was downloading duplicate substrate dependencies. The integration tests will test whether the serialization of keys and calls works.
* Fix updated jsonrpsee compilation errors
* Add missing frame-metadata dependency
* WIP
* Begin converting rpc layer to use std futures and jsonrpsee
* Convert metadata to async/await
* Convert block_hash to async/await
* Convert more methods to async/await
* Remove sp_rpc
* Fix more compilation errors
* Remove connect
* Starting to convert subscription functions
* Use jsonrpsee branch from PR for public client types
* Implement subscribe events with jsonrpsee subscription
* Converting subscriptions and wait_for_block_events
* WIP converting lib methods to async
* Use shared client reference directly for rpc call
`rpc_api!` macro currently only supports RawClient (which cannot be shared).
Also supports named params only which is not currently compatible with substrate rpd which accepts only positional params.
* Use &self instead of &mut self for shared Client
* Convert submit_and_watch to async/await
* Convert more Client fns to async
* Pin some trait futures
* Add serde error
* Fix client creation
* Fix client request compiler errors
* Unify metadata errors
* Add WS handshake error variant
* Fix some more compiler errors
* Fix more compiler errors
* Convert submit_extrinsic to async
* Convert submit and submit_and_watch
* Add Send + Sync constraints
* Clone clients
* Fix EventArg conversion error
* Fix remaining warnings/errors
* Replace deny warnings with specific lints
* Infallable subscription loops
* Use jsonrpsee wss branch
* Fix example
* Start to fix up tests
* Make contracts tests compile
* Make some more tests pass
* Fix up remaining tests
* Fmt
* Use correct event storage key type
* Fix finding events
* Use master jsonrpsee
* Do not error if type sizes missing: log warn
* Split out EventsSubscriber, allow updating events decoder
* Format code
* Check missing type sizes after registration
* Add example which for submit and watching events
* Move contracts tests to contracts module
* Add test for instantiating a contract
* Fix InstantiateArgs encoding
* Ignore PhantomData primitives, they are 0
* Increase endowment and log code hash
* Update SystemEvent
* Fix codec import
* Oops
* Write buffer directly to output to avoid encoding vec
* Debug with StorageChanges encoded as hex
* Logging and format code