Add subxt-historic crate for accesing historic (non head-of-chain) blocks (#2040)

* WIP subxt-historic

* WIP subxt-historic

* WIP subxt-historic; flesh out basic foundations

* WIP filling in extrinsic decoding functionality

* iter and decode transaction extensions

* Fill in the Online/OfflineClient APIs and move more things to be part of the chain Config

* WIP storage

* clippy, fmt, finish extrinsics example

* prep for 0.0.1 release to claim crate name

* fix README link

* fmt

* WIP thinking about storage APIs

* WIP working out storage APIs

* Storage plain value fetching first pass

* WIP storage: first pass iterating over values done

* First apss finishing storage APIs

* fmt and clippy

* Create a storage example showing fetch and iteration

* Bump to frame-decode 0.9.0

* Bump subxt-historic to 0.0.3 for preview release

* Remove unused deps

* fix import

* clippy

* doc fixes

* tweak CI and fix some cargo hack findings

* Update README: subxt-historic is prerelease
This commit is contained in:
James Wilson
2025-08-26 17:56:21 +01:00
committed by GitHub
parent 23f3ebe6b5
commit 3aabd6dc09
33 changed files with 3220 additions and 55 deletions
Generated
+73 -2
View File
@@ -1931,16 +1931,20 @@ dependencies = [
[[package]]
name = "frame-decode"
version = "0.8.0"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1276c23a1fb234d9f81b5f71c526437f2a55ab4419f29bfe1196ac4ee2f706c"
checksum = "c470df86cf28818dd3cd2fc4667b80dbefe2236c722c3dc1d09e7c6c82d6dfcd"
dependencies = [
"frame-metadata 23.0.0",
"parity-scale-codec",
"scale-decode",
"scale-encode",
"scale-info",
"scale-info-legacy",
"scale-type-resolver",
"serde_yaml",
"sp-crypto-hashing",
"thiserror 2.0.12",
]
[[package]]
@@ -4447,6 +4451,21 @@ dependencies = [
"syn 2.0.101",
]
[[package]]
name = "scale-info-legacy"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f5da3f59983b08a37d8d979d2326bdc00e8cca57b3d28fb05bdc0f6d7c28600c"
dependencies = [
"hashbrown 0.15.3",
"scale-type-resolver",
"serde",
"smallstr",
"smallvec",
"thiserror 2.0.12",
"yap",
]
[[package]]
name = "scale-type-resolver"
version = "0.2.0"
@@ -4744,6 +4763,19 @@ dependencies = [
"serde",
]
[[package]]
name = "serde_yaml"
version = "0.9.34+deprecated"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
dependencies = [
"indexmap 2.9.0",
"itoa",
"ryu",
"serde",
"unsafe-libyaml",
]
[[package]]
name = "serdect"
version = "0.2.0"
@@ -4860,6 +4892,15 @@ version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7"
[[package]]
name = "smallstr"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "63b1aefdf380735ff8ded0b15f31aab05daf1f70216c01c02a12926badd1df9d"
dependencies = [
"smallvec",
]
[[package]]
name = "smallvec"
version = "1.15.0"
@@ -5670,6 +5711,28 @@ dependencies = [
"tracing",
]
[[package]]
name = "subxt-historic"
version = "0.0.3"
dependencies = [
"frame-decode",
"frame-metadata 23.0.0",
"futures",
"hex",
"parity-scale-codec",
"primitive-types",
"scale-decode",
"scale-info",
"scale-info-legacy",
"scale-type-resolver",
"scale-value",
"sp-crypto-hashing",
"subxt-rpcs",
"thiserror 2.0.12",
"tokio",
"url",
]
[[package]]
name = "subxt-lightclient"
version = "0.43.0"
@@ -6048,7 +6111,9 @@ dependencies = [
"bytes",
"libc",
"mio",
"parking_lot",
"pin-project-lite",
"signal-hook-registry",
"socket2",
"tokio-macros",
"windows-sys 0.52.0",
@@ -6399,6 +6464,12 @@ dependencies = [
"subtle",
]
[[package]]
name = "unsafe-libyaml"
version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
[[package]]
name = "untrusted"
version = "0.9.0"