Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
401c3fb
feat: add web3-storage-subxt client
danielbui12 Jun 25, 2026
1bffa95
chore: rename crate
danielbui12 Jun 25, 2026
15477d5
feat: wire L0 client with storage_subxt
danielbui12 Jun 25, 2026
89c02da
feat: wire L1 client with storage_subxt
danielbui12 Jun 25, 2026
18f38f0
feat: wire provider-node with new storage-subxt
danielbui12 Jun 25, 2026
aff0a46
Merge branch 'dev' into subxt_runtime_metadata
danielbui12 Jun 25, 2026
ff82008
feat: wire storage-interface client with storage-subxt
danielbui12 Jun 26, 2026
a782490
feat: replace hand-rolled types with generated equivalents
danielbui12 Jun 26, 2026
7cdccf2
feat: more wiring client to storage_subxt
danielbui12 Jun 26, 2026
db52239
Merge remote-tracking branch 'origin/dev' into subxt_runtime_metadata
danielbui12 Jun 26, 2026
34f70a9
chore: wire sdk with new /info response
danielbui12 Jun 26, 2026
4ae4f8c
chore: fmt
danielbui12 Jun 26, 2026
fd18301
fix: drop alias in storage_subxt
danielbui12 Jun 26, 2026
c3d907c
chore: fmt
danielbui12 Jun 26, 2026
c99bed6
refactor: migrate sp_runtime::AccountId32 to storage_subxt::subxt::ut…
danielbui12 Jun 26, 2026
c3d6e0f
Merge remote-tracking branch 'origin/dev' into subxt_runtime_metadata
danielbui12 Jun 26, 2026
21aa8ab
refactor: replace sp_core::H256 with storage_subxt::subxt::utils::H256
danielbui12 Jun 26, 2026
7a4ba13
Merge branch 'dev' into subxt_runtime_metadata
danielbui12 Jun 29, 2026
7d38ac4
feat(runtime-api): version StorageProviderApi v2 with bucket_id, chal…
danielbui12 Jun 29, 2026
fc7aca5
feat(runtime-api): add challenger_challenges to StorageProviderApi v2
danielbui12 Jun 29, 2026
0f19c56
refactor(client): query providers via runtime API in discovery.rs
danielbui12 Jun 29, 2026
396a8ba
refactor: replace manual storage-key parsing with StorageProviderApi
danielbui12 Jun 29, 2026
d1e37b0
Merge branch 'dev' into subxt_runtime_metadata
danielbui12 Jun 29, 2026
e68900a
Merge branch 'dev' into subxt_runtime_metadata
danielbui12 Jun 30, 2026
35b4924
Merge remote-tracking branch 'origin/dev' into subxt_runtime_metadata
danielbui12 Jul 2, 2026
08620d6
chore: fmt
danielbui12 Jul 2, 2026
0c6de98
Merge branch 'dev' into subxt_runtime_metadata
danielbui12 Jul 3, 2026
206733d
Merge remote-tracking branch 'origin/dev' into subxt_runtime_metadata
danielbui12 Jul 5, 2026
df221b3
chore: fmt
danielbui12 Jul 6, 2026
3d7bdbb
chore: update codegen from runtime metadata
danielbui12 Jul 6, 2026
0c564f1
chore: revert some changes, keep minimal fixes
danielbui12 Jul 7, 2026
b42dedd
chore: revert provider-node/src/subxt_client.rs
danielbui12 Jul 7, 2026
8ddd08f
chore: resolve comments
danielbui12 Jul 7, 2026
48c1025
Merge remote-tracking branch 'origin/dev' into subxt_runtime_metadata
danielbui12 Jul 7, 2026
830a31b
chore: drop runtime changes
danielbui12 Jul 7, 2026
a1981a2
chore: update runtime metdata
danielbui12 Jul 7, 2026
f0b0d81
Merge branch 'dev' into subxt_runtime_metadata
danielbui12 Jul 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 17 additions & 12 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ members = [
"provider-node",
"runtimes/web3-storage-local",
"runtimes/web3-storage-paseo",
"storage-subxt",

# Smart-contract precompiles (pallet_revive integration)
"precompiles/drive-registry-precompile",
Expand Down Expand Up @@ -41,6 +42,7 @@ storage-client = { path = "client" }
storage-parachain-runtime = { path = "runtimes/web3-storage-local" }
storage-primitives = { path = "primitives", default-features = false }
storage-provider-node = { path = "provider-node" }
storage-subxt = { path = "storage-subxt" }

# Storage Interfaces: File System Interface
file-system-client = { path = "storage-interfaces/file-system/client" }
Expand Down Expand Up @@ -164,6 +166,7 @@ rand = "0.8"

# Subxt (chain interaction for off-chain clients)
subxt = { version = "0.44.3" }
subxt-core = { version = "0.44.3", default-features = false }
subxt-signer = { version = "0.44.3", features = ["sr25519"] }

# Testing
Expand Down
7 changes: 4 additions & 3 deletions client/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ serde = { workspace = true, features = ["std"] }
serde_json = { workspace = true }
serde_with = { workspace = true }
sp-core = { workspace = true, features = ["std"] }
sp-runtime = { workspace = true, features = ["std"] }
tokio = { workspace = true }
base64 = { workspace = true }
thiserror = { workspace = true }
Expand All @@ -25,12 +24,14 @@ rand = { workspace = true }
chacha20poly1305 = { workspace = true }
hex = { workspace = true, features = ["std"] }
async-trait = { workspace = true }
subxt = { workspace = true }
subxt-signer = { workspace = true }
storage-subxt = { workspace = true }
futures = { workspace = true }

[dev-dependencies]
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
storage-provider-node = { workspace = true }
axum = { workspace = true }
tempfile = { workspace = true }

[features]
mainnet = ["storage-subxt/mainnet"]
10 changes: 4 additions & 6 deletions client/examples/complete_workflow.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,12 @@
//! provider_url - HTTP URL for the provider node (default: http://127.0.0.1:3333)
//! user_seed - Seed of the paying user (default: //Bob)

use sp_core::crypto::Ss58Codec;
use sp_runtime::AccountId32;
use std::env;
use storage_client::{
AdminClient, ChunkingStrategy, ClientConfig, NegotiateRequest, ProviderClient, SignedTerms,
StorageUserClient,
};
use subxt_signer::{sr25519::Keypair, SecretUri};
use storage_subxt::subxt_signer::{sr25519::Keypair, SecretUri};

const DEFAULT_CHAIN_WS: &str = "ws://127.0.0.1:2222";
const DEFAULT_PROVIDER_URL: &str = "http://127.0.0.1:3333";
Expand All @@ -46,12 +44,12 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
let user_seed = args.get(3).map(String::as_str).unwrap_or(DEFAULT_USER_SEED);

let user_keypair = Keypair::from_uri(&user_seed.parse::<SecretUri>()?)?;
let user_account = AccountId32::from(user_keypair.public_key().0);
let user_ss58 = user_account.to_ss58check();
let user_account = user_keypair.public_key().to_account_id();
let user_ss58 = user_account.to_string();

let provider_ss58 = ProviderClient::fetch_provider_id(provider_url)
.await?
.to_ss58check();
.to_string();

println!("=== Complete Storage Workflow ===");
println!("Chain WebSocket: {chain_ws}");
Expand Down
10 changes: 5 additions & 5 deletions client/examples/register_provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
//! multiaddr - Provider multiaddr (default: /ip4/127.0.0.1/tcp/3333)
//! keyfile - Path to file containing seed (default: dev seed //Alice)

use sp_core::crypto::Ss58Codec;
use std::env;
use storage_client::{ClientConfig, ProviderClient, ProviderSettings};
use subxt_signer::{sr25519::Keypair, SecretUri};
use storage_client::{ClientConfig, ProviderClient};
use storage_subxt::api::runtime_types::pallet_storage_provider::pallet::ProviderSettings;
use storage_subxt::subxt_signer::{sr25519::Keypair, SecretUri};

const DEFAULT_CHAIN_WS: &str = "ws://127.0.0.1:2222";
const DEFAULT_PROVIDER_URL: &str = "http://127.0.0.1:3333";
Expand Down Expand Up @@ -52,8 +52,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {

// Derive SS58 address from the keypair for display and ProviderClient identity.
let public_key_bytes = keypair.public_key().0;
let account = sp_runtime::AccountId32::from(public_key_bytes);
let ss58_address = account.to_ss58check();
let account = storage_subxt::subxt::utils::AccountId32::from(public_key_bytes);
let ss58_address = account.to_string();

println!("=== Provider Registration ===");
println!("Chain WebSocket: {chain_ws}");
Expand Down
Loading
Loading